package com.xquant.marketdata.marketdata.domain;

import java.math.BigDecimal;
import com.xquant.common.core.annotation.Excel;
import org.apache.commons.lang.builder.ToStringBuilder;
import org.apache.commons.lang.builder.ToStringStyle;

/**
 * 商品期货对象 tcmdtfuture
 *
 * @author zipeng.li
 * @date 2022-03-10
 */
public class TcmdtfutureDTO
{
    /** 合约代码 */
    @Excel(name = "合约代码")
    private String iCode;

    /** 资产类型 */
    private String aType;

    /** 市场类型 */
    private String mType;

    /** 合约名称 */
    @Excel(name = "合约名称")
    private String siName;

    /** 国家 */
    private String country;

    /** 币种 */
    private String currency;

    /** 报价方式 */
    private String qType;

    /** 产品类型 */
    @Excel(name = "产品类型",dictType = "A_TYPE")
    private String pClass;

    /** 标的交易代码 */
    @Excel(name = "挂钩标的")
    private String uICode;

    /** 标的资产类型 */
    private String uAType;

    /** 标的市场类型 */
    private String uMType;

    /** 合约乘数 */
    @Excel(name = "合约乘数",cellType = Excel.ColumnType.MONEY,scale = 4)
    private BigDecimal lotsize;

    /** 结算方式 */
    @Excel(name = "结算方式")
    private String settlementType;

    /** 到期日 */
    @Excel(name = "到期日")
    private String maturityDate;

    /** 上市日 */
    @Excel(name = "上市日")
    private String listDate;

    /** 交割开始日 */
    @Excel(name = "交割开始日")
    private String fstDeliveryDate;

    /** 最后交割日 */
    @Excel(name = "最后交割日")
    private String lastDeliveryDate;

    private String instrument;

    public String getInstrument() {
        return instrument;
    }

    public void setInstrument(String instrument) {
        this.instrument = instrument;
    }

    /** 标准合约代码 */
    private String tradeCode;

    /** 标准合约名称 */
    private String tradeName;

    /** 标准类型 */
    private String sType;

    /** 保证金率 */
    private BigDecimal marginRate;

    /** 涨跌停限幅 */
    private BigDecimal chgRatio;

    /** 最后交易日 */
    private String lastTradeDate;

    /** 产品类型 */
    private String pType;

    /** 名称 */
    private String name;

    /** 结算方式 */
    private String settleType;

    public void setiCode(String iCode)
    {
        this.iCode = iCode;
    }

    public String getiCode()
    {
        return iCode;
    }
    public void setaType(String aType)
    {
        this.aType = aType;
    }

    public String getaType()
    {
        return aType;
    }
    public void setmType(String mType)
    {
        this.mType = mType;
    }

    public String getmType()
    {
        return mType;
    }
    public void setSiName(String siName)
    {
        this.siName = siName;
    }

    public String getSiName()
    {
        return siName;
    }
    public void setCountry(String country)
    {
        this.country = country;
    }

    public String getCountry()
    {
        return country;
    }
    public void setCurrency(String currency)
    {
        this.currency = currency;
    }

    public String getCurrency()
    {
        return currency;
    }
    public void setqType(String qType)
    {
        this.qType = qType;
    }

    public String getqType()
    {
        return qType;
    }
    public void setpClass(String pClass)
    {
        this.pClass = pClass;
    }

    public String getpClass()
    {
        return pClass;
    }
    public void setuICode(String uICode)
    {
        this.uICode = uICode;
    }

    public String getuICode()
    {
        return uICode;
    }
    public void setuAType(String uAType)
    {
        this.uAType = uAType;
    }

    public String getuAType()
    {
        return uAType;
    }
    public void setuMType(String uMType)
    {
        this.uMType = uMType;
    }

    public String getuMType()
    {
        return uMType;
    }
    public void setLotsize(BigDecimal lotsize)
    {
        this.lotsize = lotsize;
    }

    public BigDecimal getLotsize()
    {
        return lotsize;
    }
    public void setSettlementType(String settlementType)
    {
        this.settlementType = settlementType;
    }

    public String getSettlementType()
    {
        return settlementType;
    }
    public void setMaturityDate(String maturityDate)
    {
        this.maturityDate = maturityDate;
    }

    public String getMaturityDate()
    {
        return maturityDate;
    }
    public void setListDate(String listDate)
    {
        this.listDate = listDate;
    }

    public String getListDate()
    {
        return listDate;
    }
    public void setFstDeliveryDate(String fstDeliveryDate)
    {
        this.fstDeliveryDate = fstDeliveryDate;
    }

    public String getFstDeliveryDate()
    {
        return fstDeliveryDate;
    }
    public void setLastDeliveryDate(String lastDeliveryDate)
    {
        this.lastDeliveryDate = lastDeliveryDate;
    }

    public String getLastDeliveryDate()
    {
        return lastDeliveryDate;
    }
    public void setTradeCode(String tradeCode)
    {
        this.tradeCode = tradeCode;
    }

    public String getTradeCode()
    {
        return tradeCode;
    }
    public void setTradeName(String tradeName)
    {
        this.tradeName = tradeName;
    }

    public String getTradeName()
    {
        return tradeName;
    }
    public void setsType(String sType)
    {
        this.sType = sType;
    }

    public String getsType()
    {
        return sType;
    }
    public void setMarginRate(BigDecimal marginRate)
    {
        this.marginRate = marginRate;
    }

    public BigDecimal getMarginRate()
    {
        return marginRate;
    }
    public void setChgRatio(BigDecimal chgRatio)
    {
        this.chgRatio = chgRatio;
    }

    public BigDecimal getChgRatio()
    {
        return chgRatio;
    }
    public void setLastTradeDate(String lastTradeDate)
    {
        this.lastTradeDate = lastTradeDate;
    }

    public String getLastTradeDate()
    {
        return lastTradeDate;
    }
    public void setpType(String pType)
    {
        this.pType = pType;
    }

    public String getpType()
    {
        return pType;
    }
    public void setName(String name)
    {
        this.name = name;
    }

    public String getName()
    {
        return name;
    }
    public void setSettleType(String settleType)
    {
        this.settleType = settleType;
    }

    public String getSettleType()
    {
        return settleType;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
            .append("iCode", getiCode())
            .append("aType", getaType())
            .append("mType", getmType())
            .append("siName", getSiName())
            .append("country", getCountry())
            .append("currency", getCurrency())
            .append("qType", getqType())
            .append("pClass", getpClass())
            .append("uICode", getuICode())
            .append("uAType", getuAType())
            .append("uMType", getuMType())
            .append("lotsize", getLotsize())
            .append("settlementType", getSettlementType())
            .append("maturityDate", getMaturityDate())
            .append("listDate", getListDate())
            .append("fstDeliveryDate", getFstDeliveryDate())
            .append("lastDeliveryDate", getLastDeliveryDate())
            .append("tradeCode", getTradeCode())
            .append("tradeName", getTradeName())
            .append("sType", getsType())
            .append("marginRate", getMarginRate())
            .append("chgRatio", getChgRatio())
            .append("lastTradeDate", getLastTradeDate())
            .append("pType", getpType())
            .append("name", getName())
            .append("settleType", getSettleType())
            .toString();
    }
}
